package modelosqlserver;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.SwingUtilities;

import transacciones.ConeccionDAO;
import transacciones.TransactionDelegate;
import utilitario.FuncionesUsuario;

public class PerfilSeguridadDAO extends ConeccionDAO {

	private PerfilSeguridad varPerfSeg;
	private FuncionesUsuario funUsu;

	public PerfilSeguridadDAO(PerfilSeguridad parPerfSeg, TransactionDelegate transactionDelegate, FuncionesUsuario parFunUsu) {

		super(transactionDelegate);
		this.varPerfSeg = parPerfSeg;
		this.funUsu = parFunUsu;

	}// Fin de constructor

	public PerfilSeguridad obtenerSeguridad(String parSecCod) {

		String conSql;
		PreparedStatement pstm;
		ResultSet resSql;

		try {

			conSql = "select * from  where sec_cod=" + parSecCod;
			pstm = obtenerConeccion().prepareStatement(conSql);
			resSql = pstm.executeQuery();

			varPerfSeg.limpiarInstancia();
			if (resSql.next()) {

				varPerfSeg.setPerf_tipo(resSql.getString("perf_tipo"));
				varPerfSeg.setPerf_nombre(resSql.getString("perf_nombre"));
				varPerfSeg.setSec_cod(resSql.getString("sec_cod"));
				varPerfSeg.setPerf_nivel(resSql.getString("perf_nivel"));
				varPerfSeg.setPerf_valacc(resSql.getInt("perf_valacc"));
				varPerfSeg.setPerf_ver(resSql.getInt("perf_ver"));

			}
		} catch (SQLException e) {
			// funUsu.mostrarMensaje("¡¡¡Error en metodo agregar()", this.getClass().getName());
			throw new RuntimeException(e);
		}
		return varPerfSeg;

	}

	public List<PerfilSeguridad> obtenerListaSeguridad() {

		String conSql;
		try {

			conSql = "select * from PerfilSeguridad";

			ResultSet resSql = obtenerConeccion().createStatement().executeQuery(conSql);
			List<PerfilSeguridad> lisPer = new ArrayList<PerfilSeguridad>();

			PerfilSeguridad sec;
			while (resSql.next()) {

				sec = new PerfilSeguridad();

				sec.setPerf_tipo(resSql.getString("perf_tipo"));
				sec.setPerf_nombre(resSql.getString("perf_nombre"));
				sec.setSec_cod(resSql.getString("sec_cod"));
				sec.setPerf_nivel(resSql.getString("perf_nivel"));
				sec.setPerf_valacc(resSql.getInt("perf_valacc"));
				sec.setPerf_ver(resSql.getInt("perf_ver"));

				lisPer.add(sec);

			}// Fin de metodo

			return lisPer;

		} catch (SQLException e) {
			// funUsu.mostrarMensaje("¡¡¡Error en metodo getListaContacto()", this.getClass().getName());
			throw new RuntimeException(e);

		}// Fin Catch en caso de que haya un error
	}// Fin de metodo obtenerListausuario(String parUsuNom)

	public ImageIcon leerBlob(byte[] parResSql) {

		ImageIcon emp_logo;

		if (parResSql != null) {
			emp_logo = new ImageIcon(parResSql);
		} else {
			emp_logo = null;
		}
		return emp_logo;
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				String conSql;
				PreparedStatement pstm;

				// Migrarusuario empMig;
				// usuarioDAO empDAO = new usuarioDAO(null, null);
				//
				// List<Migrarusuario> lisEmp = empDAO.getListMigrarusuario();
				// Iterator ite = lisEmp.iterator();
				//
				// while (ite.hasNext()) {
				//
				// empMig = (Migrarusuario) ite.next();
				//
				// try {
				// Connection conexSQLServer = ConexionSqlServer.crearConexion();
				//
				// conSql = "insert into  values(?,?,?,?,?)";
				// pstm = conexSQLServer.prepareStatement(conSql);
				//
				// pstm.setString(1, empMig.getEmp_cod());//Codigo
				// pstm.setString(2, empMig.getEmp_ruc());
				// pstm.setString(3, empMig.getEmp_nombre());
				// pstm.setString(4, empMig.getEmp_descripcion());
				// pstm.setString(5, empMig.getEmp_contacto());
				//
				//
				// pstm.execute();
				//
				// conexSQLServer.close();
				//
				// } catch (SQLException e) {
				// throw new RuntimeException(e);
				// }
				//
				// System.out.println("Codigo : " + empMig.getEmp_cod());
				// }
			}
		});
	}
}